package com.quiz.bis.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.quiz.bis.domain.model.Exam;
import com.quiz.bis.domain.vo.ExamVo;
import com.quiz.bis.domain.vo.StudentActivityVo;
import com.quiz.common.mybatis.core.page.PageQuery;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ExamMapper extends BaseMapper<Exam> {
    IPage<ExamVo> selectExamPage(Page<ExamVo> page, @Param("exam") Exam exam);

    ExamVo selectExamDetail(@Param("id") Long id);

    int updateStatusBatch(@Param("ids") List<Long> ids, @Param("status") Integer status);


    /**
     * 分页查询学生考试活动列表
     */
    Page<StudentActivityVo> selectStudentActivityPage(@Param("page") Page<Exam> page,
                                                      @Param("groupId") Long groupId,
                                                      @Param("type") Integer type,
                                                      @Param("status") Integer status,
                                                      @Param("userId") Long userId,
                                                      @Param("searchKey") String searchKey);

    /**
     * 分页查询学生已发布成绩的考试列表
     */
    Page<Exam> selectStudentPubedExamPage(@Param("page") Page<Exam> page,
                                                      @Param("groupId") Long groupId,
                                                      @Param("type") Integer type,
                                                      @Param("userId") Long userId,
                                                      @Param("searchKey") String searchKey);
}